gstreamer1: Use lazy symbol binding to load plugins
authorTed Hess <[email protected]>
Thu, 4 Dec 2014 19:59:24 +0000 (14:59 -0500)
committerTed Hess <[email protected]>
Thu, 4 Dec 2014 20:16:16 +0000 (15:16 -0500)
Signed-off-by: Ted Hess <[email protected]>
multimedia/gstreamer1/Makefile
multimedia/gstreamer1/patches/010-gstplugin_use_lazy_symbol_binding.patch [new file with mode: 0644]

index d477fd8f7e3be549a755f3e55f7cb298a7fff6c1..a73cc1d85f944fff0c817647c3b41df293088454 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gstreamer1
 PKG_VERSION:=1.4.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=W. Michael Petullo <[email protected]>
 
diff --git a/multimedia/gstreamer1/patches/010-gstplugin_use_lazy_symbol_binding.patch b/multimedia/gstreamer1/patches/010-gstplugin_use_lazy_symbol_binding.patch
new file mode 100644 (file)
index 0000000..603e57c
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/gst/gstplugin.c
++++ b/gst/gstplugin.c
+@@ -723,15 +723,8 @@ gst_plugin_load_file (const gchar * file
+     goto return_error;
+   }
+-  flags = G_MODULE_BIND_LOCAL;
+-  /* libgstpython.so is the gst-python plugin loader. It needs to be loaded with
+-   * G_MODULE_BIND_LAZY.
+-   *
+-   * Ideally there should be a generic way for plugins to specify that they
+-   * need to be loaded with _LAZY.
+-   * */
+-  if (strstr (filename, "libgstpython"))
+-    flags |= G_MODULE_BIND_LAZY;
++  // No need to resolve all bindings until referenced
++  flags = G_MODULE_BIND_LOCAL | G_MODULE_BIND_LAZY;
+   module = g_module_open (filename, flags);
+   if (module == NULL) {